package solitaire.InterfacesControle;

import solitaire.InterfacesPresentation.IPColonne;
import solitaire.application.Colonne;

public interface ICColonne extends ICDoubleTas{
	/**
	 * Indique si un tas de cartes est empilable sur la colonne
	 * @return
	 */
	public boolean isICCarteRetournable();
	/**
	 *  Indique si une carte est empilable sur la colonne
	 *  @return
	 */
	public boolean isEmpilable(ICCarte carte);
	/**
	 * Indique si un tas de cartes est empilable sur la colonne
	 * @param tas
	 * @return
	 */
	public boolean isEmpilable(ICTas tas);
	/**
	 * Indique si les n cartes au sommet d'un tas de cartes sont empilables sur la colonne
	 * @param tas
	 * @param n
	 * @return
	 */
	public boolean isEmpilable(ICTas tas, int n);
	/**
	 *  Retourne la carte au sommet du tas de cartes cach�es et la place sur le tas de cartes altern�es
	 */
	public void retournerCCarte();
	/**
	 * Recopie d'un tas de cartes dans le tas de cartes cach�es de la colonne
	 * @param reserve
	 */
	public void setReserve(ICTas reserve);
	public Colonne getAbstraction();
	public IPColonne getPresentation();
	
	/**
	 * clic de l'utilisateur sur le tas cache
	 */
	public void clicTasCache();
}
